<?php
class AOP{

    private static array $aspects = [];

    public function getAspects():array{
        return self::$aspects;
    }

    /**
     * 添加一个切面
     * @param string $pointcut 切入点 格式 "class@method"  *表示所有
     * @param Aspect $aspect 切面
     * @return void
     */
    public static function addAspect(string $pointcut,Aspect $aspect){
        self::$aspects[$pointcut] = $aspect;
    }

    /**
     * 移除一个切面
     * @param string $pointcut 切入点
     * @return void
     */
    public static function removeAspect(string $pointcut){
        if (isset(self::$aspects[$pointcut])){
            unset(self::$aspects[$pointcut]);
        }
    }
}